package org.example.reemploymentsys.tool;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 通用返回结果类（controller层返回给前端的数据）
 * @param <T>
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class R<T>{
    private int code;
    private String message;
    private T data;

    /**
     * 默认成功
     * @param data
     * @return
     * @param <T>
     */
    public static <T> R<T> success(T data){
        return new R<T>(200,"success",data);
    }

    /**
     * 默认失败
     * @param message
     * @return
     * @param <T>
     */
    public static <T> R<T> fail(String message){
        return new R<T>(500,"fail",null);
    }

    /**
     * 自定义返回结果
     * @param code
     * @param message
     * @param data
     * @return
     * @param <T>
     */
    public static <T> R<T> own(int code,String message,T data){
        return new R<T>(code,message,data);
    }

}
